#pragma once
#ifdef WIN32
#include <windows.h>
#endif
// macro for time calulations on UNIX OSs
#ifdef __APPLE__
#define N_MICROSEC_INT    (1000000)
#define N_MICROSEC_FLOAT  (1000000.0)
#define tv2micro(x) (x.tv_sec * N_MICROSEC_INT + x.tv_usec);
#endif

#include <iostream>
#include <time.h>

namespace lib3dw
{
	class Timer
	{
		public:
			Timer();
			~Timer();
			void Start();
			double Stop();

		private:
			#ifdef WIN32
			LARGE_INTEGER startTime;	
			LARGE_INTEGER endTime;
			LARGE_INTEGER frequency;
			#endif
		
			#ifdef __APPLE__
			long long int startTime;
			long long int endTime;
			#endif
	};
}